package thiago;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.text.ParseException;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;

public class LoginView extends JFrame{

	private JPanel painelCentro;
	private JPanel painelCabecalho;
	private JPanel painelRodape;
	private JLabel tituloPagina;
	private JLabel rodapePagina;
	private JLabel labelNome;
	private JLabel labelIdade;
	private JLabel labelSalario;
	private Font fonteCabecalho;
	private JRadioButton radioM;
	private JRadioButton radioF;
	private JTextField txtNome;
	private JButton btnSalvar;
	private JFormattedTextField txtIdade;
	private JTextField txtSalario;
	private ButtonGroup grupoSexo;
	private MaskFormatter mascara;
	private final String mascaraidade = "###";
	
	public void abrirJanela() throws ParseException{
		
		//Corpo
		
		this.painelCabecalho = criarCabecalho();
		
		this.painelCentro = criarCentro();
		
		this.painelRodape = criarRodape();
		
		this.labelNome = criarNome();
		
		this.txtNome = criarCampoNome();
		
		this.labelIdade = criarIdade();

		this.txtIdade = criarCampoIdade();

		this.labelSalario = criarSalario();

		this.txtSalario = criarCampoSalario();

		this.radioM = criarRadioM();
		
		this.radioF = criarRadioF();
		
		this.grupoSexo = criarGrupoSexo();
		
		this.btnSalvar = criarBotao();
		
		this.painelCentro = colocarNoPainel();
		
		//Controle
		
		this.add(painelCabecalho,BorderLayout.NORTH);
		this.add(painelCentro,BorderLayout.CENTER);
		this.add(painelRodape,BorderLayout.SOUTH);
		
		this.setSize(new Dimension(300,300));
		this.setTitle("Cadastro");
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		
	}
	private JPanel criarCabecalho(){
		
		//TituloPagina
		JLabel tituloPagina = new JLabel();
		tituloPagina = new JLabel();
		tituloPagina.setText("Cadastro Funcionario");
		tituloPagina.setForeground(Color.BLACK);
		
		//Cabecalho
		JPanel painelCabecalho = new JPanel();
		painelCabecalho.add(tituloPagina);
		painelCabecalho.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		painelCabecalho.setBackground(Color.WHITE);
		
		return painelCabecalho;
	}
	private JPanel criarRodape(){
		
		//Titulo Rodape
		JLabel rodapePagina = new JLabel();
		rodapePagina = new JLabel();
		rodapePagina.setText("Trainee 2014");
		rodapePagina.setForeground(Color.BLACK);
		
		//Rodape
		JPanel painelRodape = new JPanel();
		painelRodape.add(rodapePagina);
		painelRodape.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		painelRodape.setBackground(Color.WHITE);
		
		return painelRodape;
	}
	private JPanel criarCentro(){
		
		//Centro
		JPanel painelCentro = new JPanel();
		painelCentro = new JPanel();
		painelCentro.setLayout(null);
		
		return painelCentro;
	}
	private JLabel criarNome(){
		
		//Nome
		JLabel labelNome = new JLabel();
		labelNome = new JLabel();
		labelNome.setText("Nome:");
		labelNome.setForeground(Color.BLACK);
		labelNome.setBounds(new Rectangle(25, 15, 60, 30));
		labelNome.setFont(new Font("Verdana", Font.BOLD, 13));
		
		return labelNome;
	}
	private JTextField criarCampoNome(){
		
		//CampoNome
		JTextField txtNome = new JTextField();
		txtNome = new JTextField();
		txtNome.setBounds(new Rectangle(100, 20, 150, 20));
		return txtNome;
	}
	private JLabel criarIdade(){
		
		//Idade
		JLabel labelIdade = new JLabel();
		labelIdade = new JLabel();
		labelIdade.setText("Idade:");
		labelIdade.setForeground(Color.BLACK);
		labelIdade.setBounds(new Rectangle(25,40,60,30));
		labelIdade.setFont(new Font("Verdana", Font.BOLD, 13));
		
		return labelIdade;
	}
	private JFormattedTextField criarCampoIdade() throws ParseException{
		
		//CampoIdade
		JFormattedTextField txtIdade = new JFormattedTextField();
		mascara = new MaskFormatter(mascaraidade);
		txtIdade = new JFormattedTextField(mascara);
		txtIdade.setBounds(new Rectangle(100, 45, 150, 20));
		
		return txtIdade;
	}
	private JLabel criarSalario(){
		
		//Salario
		JLabel labelSalario = new JLabel();
		labelSalario = new JLabel();
		labelSalario.setText("Salario:");
		labelSalario.setForeground(Color.BLACK);
		labelSalario.setBounds(new Rectangle(25,65,60,30));
		labelSalario.setFont(new Font("Verdana", Font.BOLD, 13));
		
		return labelSalario;
	}
	private JTextField criarCampoSalario(){

		//CampoSalario
		JTextField txtSalario = new JTextField();
		txtSalario = new JTextField();
		txtSalario.setBounds(new Rectangle(100, 70, 150, 20));
		
		return txtSalario;
	}
	private JRadioButton criarRadioM(){
		
		//Masculino
		JRadioButton radioM = new JRadioButton();
		radioM = new JRadioButton();
		radioM.setText("Masculino");
		radioM.setBounds(new Rectangle(25,120,90,20));
		
		return radioM;
	}
	private JRadioButton criarRadioF(){
		
		//Feminino
		JRadioButton radioF = new JRadioButton();
		radioF = new JRadioButton();
		radioF.setText("Feminino");
		radioF.setBounds(new Rectangle(25,150,90,20));
		
		return radioF;
	}
	private ButtonGroup criarGrupoSexo(){
		
		//GrupoRadio
		ButtonGroup grupoSexo = new ButtonGroup();
		grupoSexo = new ButtonGroup();
		grupoSexo.add(radioM);
		grupoSexo.add(radioF);
		
		return grupoSexo;
	}
	private JButton criarBotao(){

		
		//BotãoSalvar
		JButton btnSalvar = new JButton(new ImageIcon("image/save.png"));
		btnSalvar = new JButton();
		btnSalvar.setText("Salvar");
		btnSalvar.setBounds(new Rectangle(140, 130, 120,40));
		
		return btnSalvar;
	}
	private JPanel colocarNoPainel(){
		
		//PainelCentro
		painelCentro.add(labelNome);
		painelCentro.add(labelIdade);
		painelCentro.add(labelSalario);
		painelCentro.add(txtNome);
		painelCentro.add(txtIdade);
		painelCentro.add(txtSalario);
		painelCentro.add(radioM);
		painelCentro.add(radioF);
		painelCentro.add(btnSalvar);
		
		return painelCentro;
	}
}
